notebook: Set prelight state properly
authorBenjamin Otte <otte@redhat.com>
Mon, 7 Sep 2015 00:15:25 +0000 (02:15 +0200)
committerBenjamin Otte <otte@redhat.com>
Thu, 22 Oct 2015 14:42:47 +0000 (16:42 +0200)
Don't update it on save/restore, actually set it when it changes.

gtk/gtknotebook.c

index 5cb4435403bf98fd72465823aca214b9f6deed3d..5be91364cd1beadf53af41dbf6b70dbbb9fd7e33 100644 (file)
@@ -2035,8 +2035,6 @@ notebook_save_context_for_tab (GtkNotebook     *notebook,
     {
       if (page == notebook->priv->cur_page)
         state |= GTK_STATE_FLAG_ACTIVE;
-      if (page == notebook->priv->prelight_tab)
-        state |= GTK_STATE_FLAG_PRELIGHT;
       if (page->reorderable)
         gtk_style_context_add_class (context, "reorderable-page");
     }
@@ -3282,13 +3280,23 @@ update_prelight_tab (GtkNotebook     *notebook,
   if (priv->prelight_tab == page)
     return;
 
-  if (priv->prelight_tab && priv->prelight_tab->tab_label)
-    gtk_style_context_remove_class (gtk_widget_get_style_context (priv->prelight_tab->tab_label),
-                                    "prelight-page");
+  if (priv->prelight_tab)
+    {
+      gtk_css_node_set_state (priv->prelight_tab->cssnode,
+                              gtk_css_node_get_state (priv->prelight_tab->cssnode) & ~GTK_STATE_FLAG_PRELIGHT);
+      if (priv->prelight_tab->tab_label)
+        gtk_style_context_remove_class (gtk_widget_get_style_context (priv->prelight_tab->tab_label),
+                                        "prelight-page");
+    }
 
-  if (page && page->tab_label)
-    gtk_style_context_add_class (gtk_widget_get_style_context (page->tab_label),
-                                 "prelight-page");
+  if (page)
+    {
+      gtk_css_node_set_state (page->cssnode,
+                              gtk_css_node_get_state (page->cssnode) | GTK_STATE_FLAG_PRELIGHT);
+      if (page->tab_label)
+        gtk_style_context_add_class (gtk_widget_get_style_context (page->tab_label),
+                                     "prelight-page");
+    }
 
   priv->prelight_tab = page;
 }